package com.yanqu.road.entity.activity.twins;

import com.yanqu.road.entity.DataObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class TwinsUserData extends DataObject {

    private int activityId;

    private long userId;

    //我的当前血量
    private String maxBool = "0";

    //当前攻击力
    private String maxAttack = "0";

    //是不是进去开始打了，需要门票才能打
    private boolean isEnterMission;

    //当前达到那个章节了
    private int missionId;

    //进入关卡的血量
    private String missionMaxBool = "0";
    //在关卡中的血量
    private String missionBool = "0";

    private String missionAttack = "0";

    //历史最后一关造成最大伤害
    private String missionMaxAttackValue = "0";

    //免费刷新次数
    private int missionRefeshTimes;

    //刷新卡牌次数
    private int refreshTimes;

    private int bossId;

    private String bossBool = "0";

    //boss怒气值
    private int bossRage;

    private int hp;

    //体力恢复时间
    private long hpTime;

    //已经出的卡，只会有一张
    private List<TwinsKungFuData> upKungFuList = new ArrayList<>();

    private List<TwinsKungFuData> myKungFuList = new ArrayList<>();

    //怪物的卡
    private List<TwinsKungFuData> emKungFuList = new ArrayList<>();

    //游戏开始的时候固定的卡牌，不会升级提高等级了
    private Map<Integer,TwinsUserKungFuData> missionKungFuMap = new ConcurrentHashMap<>();

    //游戏中背包中的卡牌，抽完一轮补充一轮
    private Map<Integer,TwinsUserKungFuData> gameBagKungFuMap = new ConcurrentHashMap<>();

    private List<Integer> missionKungFuCombList = new ArrayList<>();

    //玩家有的卡
    private Map<Integer,TwinsUserKungFuData> ownKungFuMap = new ConcurrentHashMap<>();

    //解锁了哪些组合技能
    private List<Integer> unlockCombList = new ArrayList<>();

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getMaxBool() {
        return maxBool;
    }

    public void setMaxBool(String maxBool) {
        if(!maxBool.equals(this.maxAttack)){
            this.maxBool = maxBool;
            setUpdateOption();
        }
    }

    public String getMaxAttack() {
        return maxAttack;
    }

    public void setMaxAttack(String maxAttack) {
        if(!maxAttack.equals(this.maxAttack)){
            this.maxAttack = maxAttack;
            setUpdateOption();
        }
    }

    public boolean isEnterMission() {
        return isEnterMission;
    }

    public void setEnterMission(boolean enterMission) {
        if(enterMission != this.isEnterMission){
            isEnterMission = enterMission;
            setUpdateOption();
        }
    }

    public int getMissionId() {
        return missionId;
    }

    public void setMissionId(int missionId) {
        if(missionId != this.missionId){
            this.missionId = missionId;
            setUpdateOption();
        }
    }

    public int getBossId() {
        return bossId;
    }

    public void setBossId(int bossId) {
        if(bossId != this.bossId){
            this.bossId = bossId;
            setUpdateOption();
        }
    }

    public String getBossBool() {
        return bossBool;
    }

    public void setBossBool(String bossBool) {
        if(!bossBool.equals(this.bossBool)){
            this.bossBool = bossBool;
            setUpdateOption();
        }
    }

    public List<TwinsKungFuData> getUpKungFuList() {
        return upKungFuList;
    }

    public void setUpKungFuList(List<TwinsKungFuData> upKungFuList) {
        this.upKungFuList = upKungFuList;
        setUpdateOption();
    }

    public List<TwinsKungFuData> getMyKungFuList() {
        return myKungFuList;
    }

    public void setMyKungFuList(List<TwinsKungFuData> myKungFuList) {
        this.myKungFuList = myKungFuList;
        setUpdateOption();
    }

    public List<TwinsKungFuData> getEmKungFuList() {
        return emKungFuList;
    }

    public void setEmKungFuList(List<TwinsKungFuData> emKungFuList) {
        this.emKungFuList = emKungFuList;
        setUpdateOption();
    }

    public Map<Integer, TwinsUserKungFuData> getOwnKungFuMap() {
        return ownKungFuMap;
    }

    public void setOwnKungFuMap(Map<Integer, TwinsUserKungFuData> ownKungFuMap) {
        this.ownKungFuMap = ownKungFuMap;
        setUpdateOption();
    }

    public String getMissionMaxBool() {
        return missionMaxBool;
    }

    public void setMissionMaxBool(String missionMaxBool) {
        if(!missionMaxBool.equals(this.missionMaxBool)){
            this.missionMaxBool = missionMaxBool;
            setUpdateOption();
        }
    }

    public String getMissionBool() {
        return missionBool;
    }

    public void setMissionBool(String missionBool) {
        if(!missionBool.equals(this.missionBool)){
            this.missionBool = missionBool;
            setUpdateOption();
        }
    }

    public String getMissionAttack() {
        return missionAttack;
    }

    public void setMissionAttack(String missionAttack) {
        if(!missionAttack.equals(this.missionAttack)){
            this.missionAttack = missionAttack;
            setUpdateOption();
        }
    }

    public String getMissionMaxAttackValue() {
        return missionMaxAttackValue;
    }

    public void setMissionMaxAttackValue(String missionMaxAttackValue) {
        if(!missionMaxAttackValue.equals(this.missionMaxAttackValue)){
            this.missionMaxAttackValue = missionMaxAttackValue;
            setUpdateOption();
        }
    }

    public int getMissionRefeshTimes() {
        return missionRefeshTimes;
    }

    public void setMissionRefeshTimes(int missionRefeshTimes) {
        if(missionRefeshTimes != this.missionRefeshTimes){
            this.missionRefeshTimes = missionRefeshTimes;
            setUpdateOption();
        }
    }

    public int getBossRage() {
        return bossRage;
    }

    public void setBossRage(int bossRage) {
        if(bossRage != this.bossRage){
            this.bossRage = bossRage;
            setUpdateOption();
        }
    }

    public int getRefreshTimes() {
        return refreshTimes;
    }

    public void setRefreshTimes(int refreshTimes) {
        if(refreshTimes != this.refreshTimes){
            this.refreshTimes = refreshTimes;
            setUpdateOption();
        }
    }

    public Map<Integer, TwinsUserKungFuData> getMissionKungFuMap() {
        return missionKungFuMap;
    }

    public void setMissionKungFuMap(Map<Integer, TwinsUserKungFuData> missionKungFuMap) {
        this.missionKungFuMap = missionKungFuMap;
        setUpdateOption();
    }

    public Map<Integer, TwinsUserKungFuData> getGameBagKungFuMap() {
        return gameBagKungFuMap;
    }

    public void setGameBagKungFuMap(Map<Integer, TwinsUserKungFuData> gameBagKungFuMap) {
        this.gameBagKungFuMap = gameBagKungFuMap;
        setUpdateOption();
    }

    public List<Integer> getUnlockCombList() {
        return unlockCombList;
    }

    public void setUnlockCombList(List<Integer> unlockCombList) {
        this.unlockCombList = unlockCombList;
        setUpdateOption();
    }

    public int getHp() {
        return hp;
    }

    public void setHp(int hp) {
        if(hp != this.hp){
            this.hp = hp;
            setUpdateOption();
        }
    }

    public long getHpTime() {
        return hpTime;
    }

    public void setHpTime(long hpTime) {
        if(hpTime != this.hpTime){
            this.hpTime = hpTime;
            setUpdateOption();
        }
    }


    public List<Integer> getMissionKungFuCombList() {
        return missionKungFuCombList;
    }

    public void setMissionKungFuCombList(List<Integer> missionKungFuCombList) {
        this.missionKungFuCombList = missionKungFuCombList;
        setUpdateOption();
    }
}
